package com.lw.algorithm;

/**
 * @Author LW
 * @2021/12/17 13:17
 */
public class BubbleSort {
    public static void main(String[] args) {
        int arrays[] = {1,3,5,2,4,6,8,7};
        // 装载临时变量
        int temp;
        // 记录是否发生了置换，0 没有发生置换，1 发生了置换
        int isChange;
        // 记录执行趟数
        int num = 0;

        //外层循环是排序的趟数
        for (int i = 0; i < arrays.length; i++) {
            //每比较一次就重新初始化为0
            isChange = 0;
            //内层循环是当前趟数需要比较的次数
            for (int j = 0; j < arrays.length - i -1; j++) {
                //前一位与后一位与前一位比较，如果前一位比后一位大，那么交换
                if(arrays[j] > arrays[j+1]) {
                    temp = arrays[j];
                    arrays[j] = arrays[j+1];
                    arrays[j+1] = temp;

                    // 如果到了这里，说明发生了置换
                    isChange = 1;
                }
            }
            //如果比较完一趟没有发生置换，那么说明排好序了，不需要执行下去了
        if (isChange == 0) {
            break;
        }
        num++;

    }
        System.out.println("执行了"+num+"次");
    }
}
